package com.itheima.mp.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.itheima.mp.domain.dto.PageDTO;
import com.itheima.mp.domain.po.User;
import com.itheima.mp.domain.query.UserQuery;
import com.itheima.mp.domain.vo.UserVO;

import java.util.List;

public interface IUserService extends IService<User> {
  /**
   * 扣除用户金额接口
   * @param id
   * @param money
   */
  void deductBalance(Long id, Integer money);

  /**
   * 根据复杂条件查询用户接口
   * @param name
   * @param status
   * @param minBalance
   * @param maxBalance
   * @return
   */
  List<User> queryUsers(String name, Integer status, Integer minBalance, Integer maxBalance);

  /**
   * 根据id查询用户
   * @param id
   * @return
   */
  UserVO queryUserAndAddressById(Long id);

  /**
   * 批量查询用户
   * @param ids
   * @return
   */
  List<UserVO> queryUserAndAddressByIds(List<Long> ids);

  /**
   * 根据复杂条件分页查询用户接口
   * @param userQuery
   * @return
   */
  PageDTO<UserVO> queryUserPage(UserQuery userQuery);
}
